package com.stagewebserver.webserver.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.stagecommon.common.pojo.WorksInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: yxl
 * @since: 2021-11-26
 **/

public interface WorksInfoMapper extends BaseMapper<WorksInfo> {

    /**
     * 获取新发布作品（按发布日期从新到旧排序）
     * @return
     */
    List selectNewWorksInfo();

    /**
     * 获取热门作品（按点赞从多到少排序）
     * @return
     */
    List selectHotWorksInfo();

    /**
     * 根据作者获取作者的作品（按发布日期从新到旧排序）
     * @param userId
     * @return
     */
    List<WorksInfo> selectWorksInfoByUser(Integer userId);

    /**
     * 根据id获取作品信息
     * @param workId
     * @return
     */
    WorksInfo selectWorkByWorkId(Long workId);

    /**
     * 关键字模糊查询作品
     * @param keyword
     * @param type
     * @return
     */
    List<WorksInfo> selectWorkByKeyword(String keyword,String type);

    /**
     * 根据分类获取作品
     * @param categoryId
     * @param type
     * @return
     */
    List<WorksInfo> selectWorksInfoByCategory(@Param("categoryId") Integer categoryId, @Param("type") String type);

    void updateWorkLikesNum(long objId, long likesNum);

    Integer selectCountWorkLikes(Long objId);
}
